// 手机号码效验
export const checkPhone = (rule, value, callback) => {
  const telStr = /^1[3|4|5|7|8][0-9]\d{8}$/;
  if (value === "" || value === null) {
    callback();
  }
  if (!telStr.test(value)) {
    return callback(new Error("手机号码格式错误"));
  }
  callback();
};
// 密码校验
export const checkPassword = (rule, value, callback) => {
  const telStr = /^[a-zA-Z]\\w{5,15}$/;
  if (value === "" || value === null) {
    callback();
  }
  if (!telStr.test(value)) {
    return callback(new Error("以字母开头，长度在6-16之间，只能包含字母、数字和下划线"));
  }
  callback();
};
// 金钱校验
export const checkMoney = (rule, value, callback) => {
  const str = /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9](0-9)?$)/;
  if (value === "" || value === null) {
    callback();
  }
  if (!str.test(value)) {
    return callback(new Error("金额输入有误"));
  }
  callback();
};

// 电话号码效验
export const checkTelPhone = (rule, value, callback) => {
  const telPhone = /^0\d{2,3}-?\d{7,8}$/;
  if (value === "" || value === null) {
    callback();
  }
  if (!telPhone.test(value)) {
    return callback(new Error("电话号码格式错误"));
  }
  callback();
};

// 邮箱效验
export const checkEmail = (rule, value, callback) => {
  //const mailReg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;
  const mailReg = /^[\w\.-]+@[a-zA-Z\d\.-]+\.[a-zA-Z]{2,}$/;
  if (value === "" || value === null) {
    callback();
  }
  if (!mailReg.test(value)) {
    return callback(new Error("邮箱格式错误"));
  }
  callback();
};

// 邮件编码效验
export const checkMailCodes = (rule, value, callback) => {
  const mailReg = /^[0-9]\d{5}$/g;
  if (value === "" || value === null) {
    callback();
  }
  if (!mailReg.test(value)) {
    return callback(new Error("邮政编码格式错误"));
  }
  callback();
};

// 数字效验
export const checkNum = (rule, value, callback) => {
  const mailReg = /^[0-9]*$/;
  if (value === "" || value === null) {
    callback();
  }
  if (!mailReg.test(value)) {
    return callback(new Error("请输入数字类型"));
  }
  callback();
};

// 身份证校验

export const checkIDCard = (rule, value, callback) => {
  const mailReg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
  if (value === "" || value === null) {
    callback();
  }
  if (!mailReg.test(value)) {
    return callback(new Error("身份证格式错误"));
  }
  callback();
};

// 统一社会信用代码校验

// 统一代码为18位，统一代码由十八位的数字或大写英文字母（不适用I、O、Z、S、V）组成，由五个部分组成：
// 第一部分（第1位）为登记管理部门代码，9表示工商部门；(数字或大写英文字母)
// 第二部分（第2位）为机构类别代码;(数字或大写英文字母)
// 第三部分（第3-8位）为登记管理机关行政区划码；(数字)
// 第四部分（第9-17位）为全国组织机构代码；(数字或大写英文字母)
// 第五部分（第18位）为校验码(数字或大写英文字母)

export const checkUncode = (rule, value, callback) => {
  const mailReg = /^[^_IOZSVa-z\W]{2}\d{6}[^_IOZSVa-z\W]{10}$/g;
  if (value === "" || value === null) {
    callback();
  }
  if (!mailReg.test(value)) {
    return callback(new Error("统一社会信用代码格式错误"));
  }
  callback();
};




